package com.itheima.tlias84.controller;


import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.itheima.tlias84.config.AliyunOssConfig;
import com.itheima.tlias84.config.OssClient;
import com.itheima.tlias84.utils.ResultUtil;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.UUID;

@Slf4j
@RestController
@RequestMapping("/upload")
public class UploadController {


    @Resource
    OssClient ossClient;
    @Resource
    AliyunOssConfig aliyunOssConfig;

    /**
     * MultipartFile spring封装的用于接收文件的对象
     *
     * @param file
     * @return
     */
    @PostMapping
    public ResultUtil upload(MultipartFile file) throws IOException {

        //获取参数名
        log.info("name{}", file.getName());
        //获取实际上传文件名
        log.info("oriname{}", file.getOriginalFilename());
        //拆分文件后缀
        String originalFilename = file.getOriginalFilename();

        String url = ossClient.upload(originalFilename, file.getInputStream());
        return ResultUtil.success(url);
//
//
//        int i = originalFilename.lastIndexOf(".");
//        String suffix = originalFilename.substring(i);
//        //阿里云oss访问路径
//        String endpoint = aliyunOssConfig.getEndpoint();
//        //填写Bucket名称
//        String bucketName = aliyunOssConfig.getBucketName();
//        //生成不重复uuid
//        String uuid = UUID.randomUUID().toString();
//        // 填写Object完整路径，完整路径中不能包含Bucket名称。
//        String objectName = uuid + suffix;
//        //转移文件到阿里云oss
//        // 创建OSSClient实例。要指定访问密钥
//        OSS ossClient = new OSSClientBuilder().build(endpoint, aliyunOssConfig.getAccessKeyId(),
//                aliyunOssConfig.getSecretAccessKey());
//        try {
//            ossClient.putObject(bucketName, objectName, file.getInputStream());
//            String url = aliyunOssConfig.getUrl() + objectName;
//            return ResultUtil.success(new StringBuilder(url));
//
//        } catch (IOException e) {
//            throw new RuntimeException(e);
//        }

    }
}
